Has anybody ever tried to delete link module descriptors via DXL?
LinkModuleDescriptor lmd
Folder lmdFolder = getParentFolder(current Module)
for lmd in lmdFolder do {
string src = getSourceName(lmd)
string tgt = getTargetName(lmd)
string err = removeLinkModuleDescriptor(lmdFolder, src, tgt)
if ( err != "" ) print err ""
}
kabr - Thu Nov 29 03:43:51 EST 2012 |
Re: removeLinkModuleDescriptor haven't evaluated this but it sounds like the usual "never delete something you iterate over". Make two loops. In the first one (for lmd in lmdFolder) put the lmd in a skip list in the second one (for lmd in mySkip) delete the lmd. Cu Mike |
Re: removeLinkModuleDescriptor SystemAdmin - Thu Nov 29 04:20:30 EST 2012 you're perfectly right. Trying to delete the lmd inside the loop caused the crash. I really should have known myself actually. Karl |
Re: removeLinkModuleDescriptor kabr - Thu Nov 29 08:13:19 EST 2012
string RemoveLinkPairing(Module SourceMod, string TargetORLink, bool flag)
{
//If flag is false it removes all linking pairing through supplied LINKMODULE
const Regexp SrcRegx = regexp2 fullName(SourceMod)
const Regexp TrgRegx = regexp2 TargetORLink
int LMDcnt = 0
Folder fol = getParentFolder (SourceMod)
LinkModuleDescriptor LMD = null
string ret = null
Skip skp = create()
for LMD in fol do {
string modSource = getSourceName(LMD)
string modTarget = getTargetName(LMD)
string modTargetORlinkmodule = null
if(flag) { modTargetORlinkmodule = getTargetName(LMD) } else { modTargetORlinkmodule = getName(LMD) }
if((SrcRegx modSource) && (TrgRegx modTargetORlinkmodule)) { put(skp, LMDcnt++, LMD) }
}
for LMD in skp do {
string modSource = getSourceName(LMD)
string modTarget = getTargetName(LMD)
ret = removeLinkModuleDescriptor(fol, modSource, modTarget)
}
delete(skp)
delete(SrcRegx)
delete(TrgRegx)
return ((ret!=null)?ret:LMDcnt"")
}
string RemoveLinkPairing(Module SourceMod, string TargetORLink) { RemoveLinkPairing(SourceMod, TargetORLink, true) }
print RemoveLinkPairing(current Module, "/New Family Car Project/Admin/Satisfies", false)
|
Re: removeLinkModuleDescriptor SystemAdmin - Thu Nov 29 13:27:34 EST 2012
string RemoveLinkPairing(Module SourceMod, string TargetORLink, bool flag)
{
//If flag is false it removes all linking pairing through supplied LINKMODULE
const Regexp SrcRegx = regexp2 fullName(SourceMod)
const Regexp TrgRegx = regexp2 TargetORLink
int LMDcnt = 0
Folder fol = getParentFolder (SourceMod)
LinkModuleDescriptor LMD = null
string ret = null
Skip skp = create()
for LMD in fol do {
string modSource = getSourceName(LMD)
string modTarget = getTargetName(LMD)
string modTargetORlinkmodule = null
if(flag) { modTargetORlinkmodule = getTargetName(LMD) } else { modTargetORlinkmodule = getName(LMD) }
if((SrcRegx modSource) && (TrgRegx modTargetORlinkmodule)) { put(skp, LMDcnt++, LMD) }
}
for LMD in skp do {
string modSource = getSourceName(LMD)
string modTarget = getTargetName(LMD)
ret = removeLinkModuleDescriptor(fol, modSource, modTarget)
}
delete(skp)
delete(SrcRegx)
delete(TrgRegx)
return ((ret!=null)?ret:LMDcnt"")
}
string RemoveLinkPairing(Module SourceMod, string TargetORLink) { RemoveLinkPairing(SourceMod, TargetORLink, true) }
print RemoveLinkPairing(current Module, "/New Family Car Project/Admin/Satisfies", false)
-Louie |
Re: removeLinkModuleDescriptor llandale - Thu Nov 29 16:12:19 EST 2012
-Louie Updates based on comments!!!!
string RemoveLinkPairings(Module SourceMod, string TargetORLink, bool flag)
{
//If flag is false it removes all linking pairing through supplied LINKMODULE
int LMDcnt = 0
Folder fol = getParentFolder (SourceMod)
LinkModuleDescriptor LMD = null
string ret = null
Skip skp = create()
for LMD in fol do {
string modSource = getSourceName(LMD)
string modTargetORlinkmodule = null
if(flag) { modTargetORlinkmodule = getTargetName(LMD) } else { modTargetORlinkmodule = getName(LMD) }
if((fullName(SourceMod) == modSource) && (TargetORLink == modTargetORlinkmodule)) { put(skp, LMDcnt++, LMD) }
}
for LMD in skp do {
string modSource = getSourceName(LMD)
string modTarget = getTargetName(LMD)
ret = removeLinkModuleDescriptor(fol, modSource, modTarget)
}
delete(skp)
return ((ret!=null)?ret:LMDcnt"")
}
string RemoveLinkPairings(Module SourceMod, string TargetORLink) { return RemoveLinkPairings(SourceMod, TargetORLink, true) }
print RemoveLinkPairings(current Module, "/New Family Car Project/Admin/Satisfies", false)
|